package actiontiktokcasemysql

const (
	TagOne   = 1 //s
	TagTwo   = 2 //a
	TagThree = 3 //b
	TagFour  = 4 //b

	// ActionObserveDrawClothing 一级类型
	ActionObserveDrawClothing = 1 //服装
	ActionObserveDrawProps    = 2 //饰品
	ActionObserveDrawTool     = 3 //功能
	ActionObserveDrawToy      = 4 //玩具
	// ActionObserveLotteryConditionsTypeObserveSuite 服饰
	ActionObserveLotteryConditionsTypeObserveSuite = 1 //套装 （连衣群等，一体的套装）
	ActionObserveLotteryConditionsTypeObserveHair  = 2 //头发
	ActionObserveLotteryConditionsTypeObserveUpper = 3 // 上半身
	ActionObserveLotteryConditionsTypeObserveLower = 4 // 下半身
	ActionObserveLotteryConditionsTypeObserveShoes = 5 // 鞋子
	// ActionObserveLotteryConditionsTypeObserveHead 外观
	ActionObserveLotteryConditionsTypeObserveHead = 14 // 头顶/头饰
	ActionObserveLotteryConditionsTypeObserveBack = 15 // 背后/翅膀
	ActionObserveLotteryConditionsTypeObserveHalo = 16 // 光环

	//工具类型

)

type ActionObserveLotteryConditionsCases struct {
}

var ActionObserveLotteryConditionsCasesObject ActionObserveLotteryConditionsCases

func (e ActionObserveLotteryConditionsCases) ConditionsTwoType() []int {
	return []int{
		ActionObserveLotteryConditionsTypeObserveHead,
		ActionObserveLotteryConditionsTypeObserveBack,
		ActionObserveLotteryConditionsTypeObserveHalo,
	}
}

func (e ActionObserveLotteryConditionsCases) ConditionsTwoTypeMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.ConditionsTwoType() {
		m[s] = e.ConditionsTwoTypeString(s)
	}
	return m
}

func (e ActionObserveLotteryConditionsCases) ConditionsTwoTypeString(tag int) string {
	switch tag {
	case ActionObserveLotteryConditionsTypeObserveHead:
		return "头饰"
	case ActionObserveLotteryConditionsTypeObserveBack:
		return "翅膀"
	case ActionObserveLotteryConditionsTypeObserveHalo:
		return "光环"
	default:
		return ""
	}
}

func (e ActionObserveLotteryConditionsCases) ConditionsType() []int {
	return []int{
		ActionObserveLotteryConditionsTypeObserveSuite,
		ActionObserveLotteryConditionsTypeObserveHair,
		ActionObserveLotteryConditionsTypeObserveUpper,
		ActionObserveLotteryConditionsTypeObserveLower,
		ActionObserveLotteryConditionsTypeObserveShoes,
	}
}

func (e ActionObserveLotteryConditionsCases) ConditionsTypeMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.ConditionsType() {
		m[s] = e.ConditionsTypeString(s)
	}
	return m
}

func (e ActionObserveLotteryConditionsCases) ConditionsTypeString(tag int) string {
	switch tag {
	case ActionObserveLotteryConditionsTypeObserveSuite:
		return "套装"
	case ActionObserveLotteryConditionsTypeObserveHair:
		return "头发"
	case ActionObserveLotteryConditionsTypeObserveUpper:
		return "上半身"
	case ActionObserveLotteryConditionsTypeObserveLower:
		return "下半身"
	case ActionObserveLotteryConditionsTypeObserveShoes:
		return "鞋子"
	default:
		return ""
	}
}

func (e ActionObserveLotteryConditionsCases) Tag() []int {
	return []int{
		TagOne,
		TagTwo,
		TagThree,
		TagFour,
	}
}

func (e ActionObserveLotteryConditionsCases) TagMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.Tag() {
		m[s] = e.TagString(s)
	}
	return m
}

func (e ActionObserveLotteryConditionsCases) TagString(tag int) string {
	switch tag {
	case TagOne:
		return "一级"
	case TagTwo:
		return "二级"
	case TagThree:
		return "三级"
	case TagFour:
		return "四级"
	default:
		return "公有"
	}
}

func (e ActionObserveLotteryConditionsCases) ObserveDrawTool() []int {
	return []int{}
}

func (e ActionObserveLotteryConditionsCases) ObserveDrawToolMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.ObserveDrawTool() {
		m[s] = e.ObserveDrawToolString(s)
	}
	return m
}

func (e ActionObserveLotteryConditionsCases) ObserveDrawToolString(tag int) string {
	switch tag {
	default:
		return "其他"
	}
}

func (e ActionObserveLotteryConditionsCases) ObserveDrawType() []int {
	return []int{
		ActionObserveDrawClothing,
		ActionObserveDrawProps,
		ActionObserveDrawTool,
		ActionObserveDrawToy,
	}
}

func (e ActionObserveLotteryConditionsCases) ObserveDrawMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.ObserveDrawType() {
		m[s] = e.ObserveDrawString(s)
	}
	return m
}

func (e ActionObserveLotteryConditionsCases) ObserveDrawString(tag int) string {
	switch tag {
	case ActionObserveDrawClothing:
		return "服饰"
	case ActionObserveDrawProps:
		return "道具"
	case ActionObserveDrawTool:
		return "功能"
	case ActionObserveDrawToy:
		return "玩具"
	default:
		return "其他"
	}
}
